home *** CD-ROM | disk | FTP | other *** search
Turbo C Context File | 1992-05-10 | 17.6 KB | 663 lines |
- Turbo C Context File
- JREVDCT.ASM
- JBSMOOTH.C
- JDMASTER.C
- JMEMSYS.C
- JMEMMGR.C
- JUTILS.C
- JMEMDOSA.ASM
- JVMAIN.C
- SVGAMODE.ASM
- POINT.ASM
- BANKS.ASM
- CTT\PRPGRANS\JQG\JRUANU2
- JQUANT2.ASM
- *.LST
- MAKEFILE.
- JBSM*.OBJ
- \VGAKIT\*.ASM
- .\VGAKIT\*.ASM
- .\VGAKIT\*.C
- JREV*.O*
- EXAMPLE.C
- *.CPP
- ..\PICS\*.CPP
- *.ASM
- blackbra.jpg
- d:blackbra.jpg
- d:ilm.jpg
- testimg.jpg
- -V9 ilm.jpg
- -V 9 ilm.jpg
- setjmp *.c
- setmany *.asm
- setmany .\vgakit\*.asm
- LDFLAGS *.c
- two/ pass *.*
- YCbCr *.c
- j_copy_sample_rows *.c
- jcopy_sample_rows *.c
- request jvmain.c
- Bogus *.c
- "read failed on temp file" *.c
- 'read failed' *.c
- Lane *.c
- void *.c
- Lane *.h
- trip_time
- force
- jdmain.c
- jdmain
- djpeg
- pixel_data
- case 1
- LXMUL
- dcinfo
- request
- read filed on
- read filed
- x_left
- x_right
- x_top
- y_top
- y_bot
- color
- register_setrgb
- cross
- *64 + (x>>2);
- jvmain.c
- jvmain
- dvpeg
- *.CPP
- *.OBJ
- *.ASM
- C:\PROJECTS\PROGRAMS\JPG\JWRGIF.C
- C:\PROJECTS\PROGRAMS\JPG\SVGAMODE.ASM
- C:\PROJECTS\PROGRAMS\JPG\BANKS.ASM
- CTT\PRPGRANS\JQG\JRUANU2
- C:\PROJECTS\PROGRAMS\PICS\FRACTUAL\FRACT.CPP
- C:\PROJECTS\PROGRAMS\JPG\JMEMMGR.C
- C:\PROJECTS\PROGRAMS\JPG\ANSI2KNR.C
- C:\PROJECTS\PROGRAMS\JPG\JMEMSYS.C
- C:\PROJECTS\PROGRAMS\JPG\RDPOINT.ASM
- C:\PROJECTS\PROGRAMS\JPG\RDPOINT.ASM
- C:\PROJECTS\PROGRAMS\JPG\NONAME00.CPP
- C:\PROJECTS\PROGRAMS\JPG\JCONFIG.H
- C:\PROJECTS\PROGRAMS\JPG\MODEL.H
- C:\PROJECTS\PROGRAMS\JPG\JVMAIN.C
- C:\PROJECTS\PROGRAMS\JPG\JVERSION.H
- C:\PROJECTS\PROGRAMS\JPG\JVMAIN.C
- C:\PROJECTS\PROGRAMS\JPG\JVMAIN.C
- : /* select output file format */
- /* Note: jselwxxx routine may make additional parameter changes,
- * such as forcing color quantization if it's a colormapped format.
- */
- switch (requested_fmt) {
- #ifdef GIF_SUPPORTED
- case FMT_GIF:
- jselwgif(cinfo);
- break;
- #endif
- #ifdef PPM_SUPPORTED
- case FMT_PPM:
- jselwppm(cinfo);
- break;
- #endif
- #ifdef RLE_SUPPORTED
- case FMT_RLE:
- jselwrle(cinfo);
- break;
- #endif
- #ifdef TARGA_SUPPORTED
- case FMT_TARGA:
- jselwtarga(cinfo);
- break;
- #endif
- default:
- ERREXIT(cinfo->emethods, "Unsupported output file format");
- break;
- LOCAL void
- usage (char * progname)
- /* complain about bad command line */
- fprintf(stderr, "usage: %s ", progname);
- /* fprintf(stderr, "[-G] [-P] [-R] [-T] [-b] [-g] [-q colors] [-1] [-D] [-d] [-m mem]");*/
- fprintf(stderr, " inputfile\n");
- exit(EXIT_FAILURE);
- fprintf(stderr, "Independent JPEG Group's DJPEG, version %s\n%s\n",
- if (optarg == NULL)
- usage(argv[0]);
- if (sscanf(optarg, "%u", &v_mod) == 0)
- vid_usage(argv[0]);
- if (v_mod > number_VGA_cards || v_mod < 0) /* check valid card # */
- vid_usage(argv[0]);
- forced_video = 1;
- whichvga proc uses si di
- local vesabuf[256]:byte
- cmp [first],'FI'
- jnz gotest
- mov ax,[retval]
- gotest: mov [bankadr],offset _nobank
- if @Codesize
- mov [bankseg],seg _nobank
- endif
- xor ax,ax
- mov [curbk],ax
- mov [vga512],ax
- mov [vga1024],ax
- mov [cirrus],ax
- mov [everex],ax
- mov [paradise],ax
- mov [tseng],ax
- mov [trident],ax
- mov [t8900],ax
- mov [ativga],ax
- mov [aheada],ax
- mov [aheadb],ax
- mov [oaktech],ax
- mov [video7],ax
- mov [chipstech],ax
- mov [tseng4],ax
- mov [genoa],ax
- mov [ncr],ax
- mov [compaq],ax
- mov [vesa],ax
- mov [first],'FI'
- mov ax,ss
- mov es,ax
- lea di,vesabuf[0]
- mov ax,4f00h
- int 10h
- cmp ax,4fh
- jnz novesa
- lea si,vesabuf[0]
- mov di,offset vgainfo
- mov ax,ds
- mov es,ax
- push ds
- mov ax,ss
- mov ds,ax
- mov cx,7
- rep movsw
- pop ds
- bkadr vesa
- mov [vga512],1
- mov [vga1024],1
- ; jmp fini
- novesa: mov si,1
- mov ax,0c000h
- mov es,ax
- cmp word ptr es:[40h],'13' ;ATI Signiture on the Video BIOS
- jnz noati
- bkadr ativga
- mov dx,1ceh
- mov al,0bbh
- out dx,al
- inc dl
- in al,dx
- and al,20h
- jz no512
- mov [vga512],1
- no512: jmp fini
- noati: mov ax,7000h ;Test for Everex
- xor bx,bx
- int 10h
- cmp al,70h
- jnz noev
- bkadr everex
- and ch,11000000b ;how much memory on board
- jz skp
- mov [vga512],1
- skp: ;fall through for Everex boards using Trident or Tseng4000
- noev: mov ax,0bf03h ;Test for Compaq
- xor bx,bx
- mov cx,bx
- int 10h
- cmp ax,0bf03h
- jnz nocp
- test cl,40h ;is 640x480x256 available?
- jz nocp
- bkadr compaq
- mov [vga512],1
- jmp fini
- nocp: mov dx,3c4h ;Test for NCR 77C22E
- mov ax,0ff05h
- call _isport2
- jnz noncr
- mov ax,5 ;Disable extended registers
- out dx,ax
- mov ax,0ff10h ;Try to write to extended register 10
- call _isport2 ;If it writes then not NCR
- jz noncr
- mov ax,105h ;Enable extended registers
- out dx,ax
- mov ax,0ff10h
- call _isport2
- jnz noncr ;If it does NOT write then not NCR
- bkadr ncr
- mov [vga512],1
- jmp fini
- noncr: mov dx,3c4h ;Test for Trident
- mov al,0bh
- out dx,al
- inc dl
- in al,dx
- cmp al,06h
- ja notri
- cmp al,2
- jb notri
- bkadr trident
- cmp al,3
- jb no89
- mov [t8900],1
- mov dx,3d5h
- mov al,1fh
- out dx,al
- inc dx
- in al,dx
- and al,3
- cmp al,1
- jb notmem
- mov [vga512],1
- je notmem
- mov [vga1024],1
- notmem: jmp fini
- no89: mov [vga512],1
- jmp fini
- notri: mov ax,6f00h ;Test for Video 7
- xor bx,bx
- int 10h
- cmp bx,'V7'
- jnz nov7
- bkadr video7
- mov ax,6f07h
- int 10h
- and ah,7fh
- cmp ah,1
- jbe skp2
- mov [vga512],1
- skp2: cmp ah,3
- jbe skp3
- mov [vga1024],1
- skp3: jmp fini
- nov7: mov dx,3d4h ;Test for GENOA GVGA
- mov ax,032eh ;check for Herchi Register
- call _isport2
- jnz nogn
- mov dx,3c4h ;check for memory segment register
- mov ax,3f06h
- call _isport2
- jnz nogn
- bkadr genoa
- mov [vga512],1
- jmp fini
- nogn: call _cirrus ;Test for Cirrus
- cmp [cirrus],0
- je noci
- jmp fini
- noci: mov dx,3ceh ;Test for Paradise
- mov al,9 ;check Bank switch register
- out dx,al
- inc dx
- in al,dx
- dec dx
- or al,al
- jnz nopd
- mov ax,50fh ;turn off write protect on VGA registers
- out dx,ax
- mov dx,offset _pdrsub
- mov cx,1
- call _chkbk
- jc nopd ;if bank 0 and 1 same not paradise
- bkadr paradise
- mov dx,3ceh
- mov al,0bh ;512k detect from Bob Berry
- out dx,al
- inc dx
- in al,dx
- test al,80h ;if top bit set then 512k
- jz nop512
- mov [vga512],1
- nop512: jmp fini
- nopd: mov ax,5f00h ;Test for Chips & Tech
- xor bx,bx
- int 10h
- cmp al,5fh
- jnz noct
- bkadr chipstech
- cmp bh,1
- jb skp4
- mov [vga512],1
- skp4: jmp fini
- noct: mov ch,0
- mov dx,3d4h ;check for Tseng 4000 series
- mov ax,0f33h
- call _isport2
- jnz not4
- mov ch,1
- mov dx,3bfh ;Enable access to extended registers
- mov al,3
- out dx,al
- mov dx,3d8h
- mov al,0a0h
- out dx,al
- jmp short yes4
- not4: mov dx,3d4h ;Test for Tseng 3000 or 4000
- mov ax,1f25h ;is the Overflow High register there?
- call _isport2
- jnz nots
- mov al,03fh ;bottom six bits only
- jmp short yes3
- yes4: mov al,0ffh
- yes3: mov dx,3cdh ;test bank switch register
- call _isport1
- jnz nots
- bkadr tseng
- cmp ch,0
- jnz t4mem
- mov [vga512],1
- jmp fini
- t4mem: mov dx,3d4h ;Tseng 4000 memory detect 1meg
- mov al,37h
- out dx,al
- inc dx
- in al,dx
- test al,1000b ;if using 64kx4 RAMs then no more than 256k
- jz nomem
- and al,3
- cmp al,1 ;if 8 bit wide bus then only two 256kx4 RAMs
- jbe nomem
- mov [vga512],1
- cmp al,2 ;if 16 bit wide bus then four 256kx4 RAMs
- je nomem
- mov [vga1024],1 ;full meg with eight 256kx4 RAMs
- nomem: bkadr tseng4
- jmp short fini
- nots:
- mov dx,3ceh ;Test for Above A or B chipsets
- mov ax,200fh
- out dx,ax
- inc dx
- nojmp
- in al,dx
- cmp al,21h
- jz verb
- cmp al,20h
- jnz noab
- bkadr aheada
- mov [vga512],1
- jmp short fini
- verb: bkadr aheadb
- mov [vga512],1
- jmp short fini
- noab: mov dx,3deh ;Test for Oak Technology
- mov ax,0ff11h ;look for bank switch register
- call _isport2
- jnz nooak
- bkadr oaktech
- mov al,0dh
- out dx,al
- inc dx
- nojmp
- in al,dx
- test al,80h
- jz no4ram
- mov [vga512],1
- no4ram: jmp short fini
- nooak: mov si,0
- fini: mov ax,si
- mov [retval],ax
- whichvga endp
- svgamode proc vid_mode, max_x:word ;Set 640x480x256 on most SVGA cards
- mov ax, [vid_mode]
- bkadr trident
- nogn: ;Test for Cirrus
- jmp fini
- const char arrow_left = 0x4b;
- const char arrow_right = 0x4d;
- const char arrow_up = 0x48;
- const char arrow_down = 0x50;
- const char page_up = 0x49;
- const char page_down = 0x51;
- const char escape = 27;
- const char home = 71;
- const char end = 79;
- /* now check if panning would be usefull
- if (
- if (optind < argc-1) {
- fprintf(stderr, "%s: only one input file\n", argv[0]);
- usage(argv[0]);
- if (enable_pan == 1)
- x_max = video_cards[card_id],vid_mode[video_mode_used].x_size;
- if (x_pos + 10
- if (x_pos + 10
- palbuf[i][0] = GETJSAMPLE(colormap[0][i]) >> 2;
- palbuf[i][1] = GETJSAMPLE(colormap[1][i]) >> 2;
- palbuf[i][2] = GETJSAMPLE(colormap[2][i]) >> 2;
- setmany(palbuf,0,256);
- for (x=0; x < 256; x++){
- palbuf[x][0] =;
- palbuf[x][1] =;
- palbuf[x][2] =;
- }
- setmany(palbuf,0,256);
- if (enable_pan == 1){
- big_sarray_ptr raw_pic_ptr; /* pointer to virt. pic. for panning */
- /* definations for reading keyboard */
- const char arrow_left = 0x4b;
- const char arrow_right = 0x4d;
- const char arrow_up = 0x48;
- const char arrow_down = 0x50;
- const char page_up = 0x49;
- const char page_down = 0x51;
- const char escape = 27;
- const char home = 71;
- const char end = 79;
- pallet[256][3], /* duplicate pallete */
- x_line = x_pos;
- y_line = y_pos;
- fprintf(stderr, "usage: %s ", progname);
- fprintf(stderr, "video cards:\n");
- fprintf(stderr, " 1) Ahead 2) ATI VGA 3) Chips & Tech\n");
- fprintf(stderr, " 4) Everex 5) Oak Tech. 6) Genoa\n");
- fprintf(stderr, " 7) NCR 8) Paradise 9) Trident\n");
- fprintf(stderr, "10) Trident 8900 11) Tseng, Orchid, Genoa, Willow\n");
- fprintf(stderr, "12) Tseng 4000 13) Video 7 14) Cirrus\n");
- fprintf(stderr, "15) Compaq 16) Vesa\n");
- for (gr_col = col = 0; col < cinfo->image_width && gr_col < maxx; col++){
- point(gr_col++, gr_row, color = GETJSAMPLE(*ptr0));
- for (row = 0; row < num_rows && gr_row < maxy; row++, gr_row++) {
- ptr0 = pixel_data[0][row];
- /* if (enable_pan){
- output_row = *((*cinfo->emethods->access_big_sarray)
- (raw_pic_ptr, gr_row, TRUE));
- }*/
- for (gr_col = col = 0; col < cinfo->image_width && gr_col < maxx; col++){
- point(gr_col++, gr_row, GETJSAMPLE(*ptr0));
- /* if (enable_pan)
- *output_row++ = color;*/
- ptr0++;
- ptr0 = pixel_data[0][row];
- register JSAMPROW ptr0, output_row;
- /* if (enable_pan){
- output_row = *((*cinfo->emethods->access_big_sarray)
- (raw_pic_ptr, gr_row, TRUE));
- }*/
- for (gr_col = col = 0; col < cinfo->image_width && gr_col < maxx; col++){
- point(gr_col++, gr_row, GETJSAMPLE(*ptr0));
- /* if (enable_pan)
- *output_row++ = color;*/
- /* if (enable_pan){ this is the old attempt
- output_row = *((*cinfo->emethods->access_big_sarray)
- (raw_pic_ptr, gr_row, TRUE));
- }*/
- /* if (enable_pan)
- *output_row++ = color;*/
- /* if (enable_pan){
- raw_pic_ptr = (*cinfo->emethods->request_big_sarray)
- (cinfo->image_width, cinfo->image_height, 1L);
- if (raw_pic_ptr == NULL)
- enable_pan = 0;
- }*/
- /* if (enable_pan){
- raw_pic_ptr = (*cinfo->emethods->request_big_sarray)
- (cinfo->image_width, cinfo->image_height, 1L);
- if (raw_pic_ptr == NULL)
- enable_pan = 0;
- }*/
- for (x = x_line; x < x_max && (x-x_line) < x_size; x++){ /* draw the picture */
- for (y=0; y < y_max; y++){
- for (y=0; y < y_max; y++){
- if (x_delta < 0){
- x_start = -x_delta;
- x_inc = 1;
- }
- else{
- x_start = x_max - x_delta;
- x_inc = -1;
- }
- now y_delta !!!
- for (y=0; y < y_max; y++)
- if (x_delta < 0){
- x_start = -x_delta;
- x_finish = x_max;
- x_inc = 1;
- }
- else{
- x_start = x_max - x_delta;
- x_finish = 0;
- x_inc = -1;
- }
- for (x=x_start; x != x_finish; x += x_inc){
- x_place = x + x_delta;
- y_place = y + y_delta;
- for (y=0; y < y_max; y++)
- point(x_place, y_place, rdpoint(x, y));
- /* for (y=0; y < y_max; y++){
- output_row = *((*cinfo->emethods->access_big_sarray)
- (raw_pic_ptr, y+y_pos, FALSE));
- for (x = 0; x < x_size; x++){
- /* if (x >= x_pos)
- point(x-x_pos, y, *output_row++);
- else
- *output_row++;
- }
- }*/
- if (x_delta != 0){
- if (x_delta > 0){
- x_start = x_delta;
- x_finish = x_max;
- x_inc = 1;
- }
- else{
- x_start = x_max + x_delta;
- x_finish = 0;
- x_inc = -1;
- }
- for (x=x_start; x != x_finish; x += x_inc){
- x_place = x - x_delta;
- for (y=0; y < y_max; y++)
- point(x_place, y, rdpoint(x, y));
- }
- else{ /* now do y shift */
- if (y_delta > 0){
- y_start = y_delta;
- y_finish = y_max;
- y_inc = 1;
- }
- else{
- y_start = y_max + y_delta;
- y_finish = 0;
- y_inc = -1;
- }
- for (y=y_start; y != y_finish; y += y_inc){
- y_place = y - y_delta;
- for (x=0; x < x_max; x++)
- point(x, y_place, rdpoint(x, y));
- }
- }
- if (y_delta <0) y_delta = -y_delta;
- for (y=0; y < y_delta; y++){
- output_row = *((*cinfo->emethods->access_big_sarray)
- (raw_pic_ptr, y_pos + y_max - y, FALSE));
- for (x = 0; x < x_size; x++){
- if (x >= x_pos)
- point(x-x_pos, y_max - y, *output_row++);
- else
- *output_row++;
- }
- }
- for (y=0; y < y_max; y++){
- output_row = *((*cinfo->emethods->access_big_sarray)
- (raw_pic_ptr, y+y_pos, FALSE));
- for (x = 0; x < x_size; x++)
- if (x > x_pos)
- point(x-x_pos, y, *output_row++);
- else
- *output_row++;
- }
- }
- if (forced_mode == 0){
- for (i = 0; i < 5; i++) /* set default to maximum resolution */
- if (video_cards[card_id].vid_mode[i].mode_number != 0)
- video_mode_used = i;
- for (i = 4; i >= 0; i--)
- if (video_cards[card_id].vid_mode[i].x_size >= cinfo->image_width
- && video_cards[card_id].vid_mode[i].y_size >= cinfo->image_height
- && video_cards[card_id].vid_mode[i].x_size != 0)
- video_mode_used = i;
- /* now check if panning would be usefull - only iff card is detected and size know */
- enable_pan = 1; /* default to on */
- if (video_cards[card_id].vid_mode[video_mode_used].y_size > cinfo->image_height
- && video_cards[card_id].vid_mode[video_mode_used].x_size > cinfo->image_width)
- enable_pan = 0;
- if (forced_mode == 0)
- svgamode(video_cards[card_id].vid_mode[video_mode_used].mode_number,
- video_cards[card_id].vid_mode[video_mode_used].x_size);
- else
- svgamode(forced_mode, 1024); /* assume x_size */
- enable_pan = 1; /* default to on */
- fprintf(stderr, "-M to force the video mode requires the BIOS mode # in dec.\n");
- fprintf(stderr, "-P to disable panning (saves memory)\n");
- fprintf(stderr, "-M to force the video mode requires the BIOS mode # in dec.\n");
- fprintf(stderr, "-V force video cards:\n");
- LOCAL void
- vid_usage (char * progname)
- /* complain about bad video selection */
- if (forced_mode == 0)
- svgamode(video_cards[card_id].vid_mode[video_mode_used].mode_number,
- video_cards[card_id].vid_mode[video_mode_used].x_size);
- else
- svgamode(forced_mode, 1024); /* assume x_size */
- fprintf(stderr, "-d enable debugging\n");
- fprintf(stderr, "Pg Up - brighten Pg Dn - darken\n");
- case 'V': /* force a video card and _assume_ card exists */
- if (optarg == NULL)
- usage(argv[0]);
- if (sscanf(optarg, "%d", &v_mod) < 1)
- vid_usage(argv[0]);
- if (v_mod > number_VGA_cards || v_mod < 1) /* check valid card # */
- vid_usage(argv[0]);
- forced_video = 1;
- for (y=0; y < y_max; y++){
- row = y * shrink + y_pos;
- if (row < y_size){
- output_row = *((*cinfo->emethods->access_big_sarray)
- (raw_pic_ptr, row, FALSE));
- for (x = 0; x < x_size; x++){
- col = x * shrink + x_pos;
- if (x > x_pos && col < x_size)
- point(x-x_pos, y, *output_row++);
- else{
- *output_row++;
- if (x <= x_pos) point(x-x_pos, y, 0); /* black ?? if shrouded */
- }
- *output_row++; /* since its shrunk at least 1 times */
- if (shrink >= 3) *output_row++;
- if (shrink == 4) *output_row++;
- }
- }
- }
- case 'h':
- help_usage();
- break;
-